ВСЕ БЕДЫ - ОТ НЕДОСТАТКА ИНФОРМАЦИИ

Кодирование

[не для публикации, на сайте не выводить]

Кодируемое слово  состоит из 10 букв. Оно превращается в многочлен из 10 слагаемых, где каждое - это буква. Сам многочлен кодируется матрицей пусть, например 5х5. Матрица заполнена числами. Чтобы "собрать" из неё правильный набор чисел, нужно "пройти" по правильному пути. Путь не обязательно должен  быть именно цепочкой, хотя для простоты возможен вариант именно с конкретной траекторией.   
зная начало, конец, количество "шагов" и конечную сумму, выбирается "путь"
 
пункты пути - буквы. И только правильная траектория даёт правильное слово.
 
А теперь размазываем полученную матрицу к чёртовой бабушке, искажая все числа в ней на некий хаотичный коэффициент. Теперь поиск "правильного" пути ещё и вопрос правильного подбора вероятности. А количество "неправильных" возрастая в разы.

[ДАННЫЕ УДАЛЕНЫ]
 
Все слова теперь можно размещать в едином "поле" - они могут спокойно накладываться друг на друга. При раскодировании мы сначала находим некое "пятно" поля которое имеет значение соответствующее понятию "начало". Для 5х5, например, мы ищем блоки 3х3 в которых центральная ячейка в среднем , скажем, в 2 раза меньше периферийных.
 
Центр такого "пятна" - исходная буква.
 
Например слово. "пароль". "П" пусть будет числом 12. Оно "спрятано" в матрице 3х3 из 12 в центре и, например, чисел близких к 24 по периметру. Пусть от 20 до 28.
 
Следую щая буква - "А" пусть число "8".
 
соответственно оно в матрице с центром =8 и периметром около 16.
 
тут всегда всё в два раза больше, но можно взять и другой коэффициент, например, 1,3 или 1,6
 
Вопрос как узнать какая буква на самом деле следующая после "п"?
 
ну, например она геометрически с ней соседствует в общей матрице, или один из углов от найденной матрицы (пусть правый нижний) указывает направления на зону поиска.
 
Но вообще-то "значимые" части матрицы - это "зоны" с заданным соотношение "центр - периферия". То есть, в большой матрице таких мест, которые вообще способны расшифровываться в буквы не бесконечное число.
 
В принципе, получив матрицу, мы можем получить некий набор вариантов слов, которые из неё можно получить.
 
Задача выбрать "правильный"
 
в слове "пароль" р="6", о=17, л=7, ь=10, а уже было, что п=12, а=8. То есть сумма 60.
 
букв 6 штук.
 
как разложить 60 на 6 слагаемых?
 
если я знаю коэффициент матрицы - 2 (соотношение значения центральной ячейки к периферийным) я могу из неё найти некий набор вроде бы подходящих чисел. их из матриц 5х5 будет несколько. Какой из этих наборов правильный? Пусть даже я знаю конечную сумму и количество слагаемых. Всё равно их останется несколько.
 
ааа - понял!
 
Это проще представить в виде карты, географической. Высоты точек - это числа. "ямки" - когда число меньше чем окружающие на какой-то коэффициент.
 
дорога через такие "горы" - путь по точкам которые ниже окружающих (но необязательно ниже предыдущей точки) - и есть "правильное" слово. Это тропа через перевал. Их несколько каждый раз.
 
Несколько таких "склеенных" подряд карт - фраза.
 
Раскодирование - поиск пути. Точнее выбор "правильного" из всех.
 
критерием могут быть например энергозатраты, как бегуны или велосипедисты выбирают себе путь в одних и тех же горах с точки зрения нужной нагрузки для тренировки выносливости например, а какой-нибудь крестьянин - минимально тяжёлый, а контрабандист - максимально незаметный, турист - наиболее красивый.
 
То есть упрощённо по такой карте нужно как бы "прокатить" некий "шарик". Его путь - это ответ.
 
карту можно "портить" для открытой передачи - наклонять, поворачивать, "срезать" максимумы или даже сжимать в целом. Суть останется, хотя выглядеть будет очень по-разному.
 
тут дошло до меня, что по английски "перевал" - это "pass". прикольно.
 
пароль - это "слово перевала", "перевальное слово"



КОММЕНТАРИИ

Введите код с картинки: